home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: MegaDisc / MegaDisc 28 (1992-05)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).zip / MegaDisc 28 (1992-05)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).adf / Programming / ILBM_Prog / ILBM_Code / ilbm.h < prev    next >
C/C++ Source or Header  |  1992-05-26  |  3KB  |  66 lines

  1. /* ILBM.h - O.K. the stuff to weed out differnt sections from           */
  2. /*          an ILBM file.                                               */
  3.  
  4. #define  MakeID(a,b,c,d)   ((LONG)(a)<<24L | (LONG)(b)<<16L | (c)<<8 | (d))
  5.  
  6. #define  ID_FORM  MakeID('F','O','R','M') /* these are the abbreviations   */
  7. #define  ID_ILBM  MakeID('I','L','B','M') /* LONG data type of all relevant*/
  8. #define  ID_BMHD  MakeID('B','M','H','D') /* ILBM chunk descriptions       */
  9. #define  ID_CMAP  MakeID('C','M','A','P')
  10. #define  ID_BODY  MakeID('B','O','D','Y')
  11. #define  ID_ACBM  MakeID('A','C','B','M')
  12. #define  ID_ABIT  MakeID('A','B','I','T')
  13.  
  14. struct   FormHeader  {  /* these are the structure definitions for ILBM */
  15.    ULONG Header;
  16.    ULONG Size;
  17.    ULONG Type;
  18. };
  19.  
  20. struct   ChunkHeader {
  21.    ULONG Header;
  22.    ULONG Size;
  23. } ;
  24.  
  25. #define  mskNone                 0  /* Masking techniques.     */
  26. #define  mskHasMask              1
  27. #define  mskHasTransparentColour 2
  28. #define  mskLasso                3
  29.  
  30. #define  cmpNone                 0  /* Compression techniques  */
  31. #define  cmpByteRun1             1
  32.  
  33. struct   BitMapHeader   {
  34.    UWORD width,   height;        /* raster width & height in pixels     */
  35.    WORD  x, y;                   /* pixel position for this image       */
  36.    UBYTE nPlanes;                /* number of bit planes.               */
  37.    UBYTE masking;                /* choice of masking technique.        */
  38.    UBYTE compression;            /* compression type.                   */
  39.    UBYTE pad1;                   /* unused; ignore on read, read as 0   */
  40.    UWORD transparentColour;      /* transparent "colour no." sort of    */
  41.    UBYTE xAspect, yAspect;       /* pixel aspect ratio width : height   */
  42.    WORD  pageWidth, pageHeight;  /* source page size in pixels          */
  43. };
  44.  
  45. struct   ColourRegister {        /* use this for colour information     */
  46.    UBYTE    red, green, blue;
  47. };
  48.  
  49. #define  OK_USE_CMAP    0        /* flags for use of colour map chunk   */
  50. #define  NO_USE_CMAP    1        /* see ILBM.c                          */
  51.  
  52.                            /* ILBM.c functions not returning int.       */
  53. VOID  ReadCMAP();          /* Read the colour map into store            */
  54. VOID  ReadABIT();          /* Read an ABIT chunk of ACBM file           */
  55. VOID  ReadBitMAPheader();  /* Self explanitory.                         */
  56. VOID  ReadBODY();          /* To read the BODY chunk.                   */
  57. VOID  PlainRead();         /* body with no compression                  */
  58. VOID  ReadChunk();         /* Speaks for itself. Then decide what else  */
  59. VOID  DumpChunk();         /* Not a useful ILBM/ACBM chunk.             */
  60. VOID  FadeDown();          /* Fade up viewport from black to CMAP1      */
  61. VOID  FadeUp();            /* Fade viewport from CMAP1 to black.        */
  62. VOID  BlackoutVP();        /* make CMAP2 black and load into viewport   */
  63. VOID  PutCMAP();           /* put CMAP1 into viewport.                  */
  64.  
  65. /* th th th that's all folks...  */
  66.